<?php

class Articles extends CI_Model {

    function __construct() {
        parent::__construct();
        $this->load->database();
    }
    function index(){
        
    }
    function get(){
        return $this->db->get('artikel');
    }
    function get_num_article($idkategori){
        $this->db->get('artikel');
        $this->db->join('kategori_artikel', 'kategori_artikel.idartikel = artikel.idartikel');
        $this->db->where('kategori_artikel.idkategori', $idkategori); // Where
        $num = $this->db->count_all_results('artikel');
        return $num;
    }
    function retrieve_article($idcategory,$perPage,$uri){
        // using category
        $this->db->select('artikel.idartikel, artikel.timestamp, artikel.judul, artikel.penulis, kategori.nama, artikel.konten, artikel.url_image');
        $this->db->from('artikel');
        $this->db->join('kategori_artikel', 'kategori_artikel.idartikel = artikel.idartikel');
        $this->db->join('kategori', 'kategori_artikel.idkategori = kategori.idkategori');
        $this->db->where('kategori_artikel.idkategori', $idcategory);
        $this->db->order_by("artikel.timestamp", "desc"); 
        //$this->db->limit(2);
        $result = $this->db->get('', $perPage, $uri);
        if($result->num_rows>0){
            return $result->result();
        }else{
            return false;
        }
        
    }
    function retrieve_article_byidart($idarticle){
        // using category
        $this->db->select('artikel.idartikel, artikel.timestamp, artikel.judul, artikel.penulis, artikel.konten, artikel.url_image');
        $this->db->from('artikel');
        $this->db->where('artikel.idartikel', $idarticle);
        $this->db->limit(1);
        $result = $this->db->get();
        if($result->num_rows>0){
            return $result->result();
        }else{
            return false;
        }
        
    }
    function retrieve_category_byidart($idarticle){
        // using category
        $this->db->select('kategori_artikel.idkategori, kategori_artikel.idartikel, kategori.nama');
        $this->db->from('kategori_artikel');
        $this->db->join('kategori', 'kategori_artikel.idkategori = kategori.idkategori');
        $this->db->where('kategori_artikel.idartikel', $idarticle);
        $result = $this->db->get();
        if($result->num_rows>0){
            return $result->result();
        }else{
            return false;
        }
        
    }
    function get_num_searcharticle($par){
        $this->db->get('artikel');
        $this->db->join('kategori_artikel', 'kategori_artikel.idartikel = artikel.idartikel');
        $this->db->join('kategori', 'kategori_artikel.idkategori = kategori.idkategori');
        $this->db->like('artikel.judul', $par, 'both');
        $this->db->or_like('artikel.konten',$par, 'both');
        $num = $this->db->count_all_results('artikel');   
        return $num;
    }
    function search_article($par,$perPage,$uri){
        // using category
        $this->db->select('artikel.idartikel, artikel.timestamp, artikel.judul, artikel.penulis, kategori.nama, artikel.konten, artikel.url_image');
        $this->db->from('artikel');
        $this->db->join('kategori_artikel', 'kategori_artikel.idartikel = artikel.idartikel');
        $this->db->join('kategori', 'kategori_artikel.idkategori = kategori.idkategori');
        $this->db->like('artikel.judul', $par, 'both');
        $this->db->or_like('artikel.konten',$par, 'both'); 
        $this->db->order_by("artikel.timestamp", "desc"); 
        //$this->db->limit(2);
        $result = $this->db->get('', $perPage, $uri);
        if($result->num_rows>0){
            return $result->result();
        }else{
            return false;
        }
    }
    function retrieve_read_article($idarticle){
        $this->db->select('artikel.idartikel, artikel.timestamp, artikel.judul, artikel.penulis, kategori.nama, artikel.konten, artikel.url_image');
        $this->db->from('artikel');
        $this->db->join('kategori_artikel', 'kategori_artikel.idartikel = artikel.idartikel');
        $this->db->join('kategori', 'kategori_artikel.idkategori = kategori.idkategori');
        $this->db->where('artikel.idartikel', $idarticle);
        $this->db->limit(1);
        $result = $this->db->get();
        if($result->num_rows>0){
            return $result->result();
        }else{
            return false;
        }
    }
    function retrieve_category(){
        $this->db->select('kategori.idkategori, kategori.nama');
        $this->db->from('kategori');
        $result = $this->db->get();
        if($result->num_rows>0){
            return $result->result();
        }else{
            return false;
        }
    }
    function GLI_article(){
        //get last index article
        $this->db->select('artikel.idartikel');
        $this->db->from('artikel');
        $this->db->order_by("artikel.idartikel", "desc");
        $this->db->limit(1);
        $result = $this->db->get();
        if($result->num_rows>0){
            return $result->result();
        }else{
            return false;
        }
    }
    function GI_article_byname($name){
        //get index by article
        $this->db->select('kategori.idkategori');
        $this->db->from('kategori');
        $this->db->where('kategori.nama', $name);
        $this->db->limit(1);
        $result = $this->db->get();
        if($result->num_rows>0){
            return $result->result();
        }else{
            return false;
        }
    }
    function getImage_byidart($idarticle){
        $this->db->select('artikel.url_image');
        $this->db->from('artikel');
        $this->db->where("artikel.idartikel", $idarticle);
        $result = $this->db->get();
        if($result->num_rows>0){
            return $result->result();
        }else{
            return false;
        }
    }
    function add_article($article){
        $this->db->insert('artikel', $article);
    }
    function add_category_article($catart){
        $this->db->insert('kategori_artikel', $catart);
    }
    function update_article($idarticle, $article){
        $this->db->where('artikel.idartikel', $idarticle);
        $this->db->update('artikel', $article); 
    }
    function delete_category_article($idarticle){
        $this->db->where('kategori_artikel.idartikel', $idarticle);
        $this->db->delete('kategori_artikel'); 
    }
    function delete_article($idarticle){
        $this->db->where('artikel.idartikel', $idarticle);
        $this->db->delete('artikel'); 
    }
}